main(){
Student s=new Student('张三', 18, 1001);
s.say();
s.study();
Teacher t=new Teacher('张三', 18, '数学');
t.say();
t.teach();

}
//定义父类
class Person{
  //定义属性
  String name;
  int age;
  //定义构造函数
  Person(this.name,this.age);

  //定义方法
  void say(){
    print('我是$name,我今年$age岁');
  }
}
//定义子类-学生类
class Student extends Person{
  //定义属性 late 延迟加载

  late int id;
  //定义构造函数
  Student(super.name,super.age,this.id);

  //非简写，可以使用super()调用父类的构造函数
//  Student(String name,int age,int id):super(name,age){
  //  this.id=id;
  //}

  //定义方法
  void study(){
    print('我是学生，我的学号时$id');
  }
}
//定义子类-教师类
class Teacher extends Person{
  //定义属性
  String subject;
  //定义构造函数
  Teacher(super.name,super.age,this.subject);
  //定义方法
  void teach(){
    print('我是$name,我今年$age岁,学科$subject');
  }
}

